#ifndef rustbuildfilevisitor_h__
#define rustbuildfilevisitor_h__

#include "FileGenVisitor.h"
#include "CLangTypeNameVisitor.h"
#include "CLangTypeHeaderVisitor.h"

class RustBuildFileVisitor : public FileGenVisitor {
public:
    RustBuildFileVisitor(
        const std::string& outputDir,
        const std::string& idlFileName,
        CLangTypeNameVisitor* typeNameVisitor,
        CLangTypeHeaderVisitor* headerVisitor);
    ~RustBuildFileVisitor();
    void visit(SpecificationNode& node) override;
private:
    void generateBuildRs(const std::string& packageName);
private:
    CLangTypeNameVisitor* typeNameVisitor_;
    CLangTypeHeaderVisitor* headerVisitor_;
    std::string idlFileName_;
};

#endif // rustbuildfilevisitor_h__
